<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // # http(了解)

    // 简介

    // - HTTP协议是Hyper Text Transfer Protocol（超文本传输协议）的缩写,适用于从万维网（WWW:World Wide Web ）服务器传输超文本到本地浏览器的传送协议。
    // - HTTP是一个基于TCP/IP通信协议来传递数据（HTML 文件, 图片文件, 查询结果等）。
    // - HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端(即WEB服务器)发送所有请求。Web服务器根据接收到的请求后，向客户端发送响应信息。

    // 主要特点
    // - 简单快速：客户向服务器请求服务时，只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单，使得HTTP服务器的程序规模小，因而通信速度很快。
    // - 灵活：HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
    // - 无连接：无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求，并收到客户的应答后，即断开连接。采用这种方式可以节省传输时间。
    // - 无状态：HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息，则它必须重传，这样可能导致每次连接传送的数据量增大。另一方面，在服务器不需要先前信息时它的应答就较快。
    // - 支持B/S(Browser => Server)及C/S(Client => Server)模式。


    // ## HTTP之请求消息Request(请求报文)

    // 客户端发送一个HTTP请求到服务器的请求消息包括以下格式：

    // - 请求行（request line）用来说明请求类型等

    // - 请求头部（header）用来说明服务器要使用的附加信息

    // - 空行

    // - 请求数据(请求时携带的数据)   get=> (queryString)   post=>(Form Data)

    // a. 以get方式传递数据时,将参数数据队列拼接在地址栏之后,用 ? 分隔

    // b.以post方式传递数据时,利用http post传输机制,将数据放在请求主体中在header传递,地址栏看不到


    // ## HTTP之响应消息Response(响应报文)

    // 一般情况下，服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息。

    // HTTP响应也由四个部分组成，分别是：

    // - 状态行
    // - 响应头部
    // - 空行
    // - 响应正文   (服务端返回的响应数据  responseText)


    // !!!!!!!!!!!!
    // http的工作原理: (在浏览地址栏输入url之后,到页面展示,浏览器做了哪些操作)
    // 1. DNS解析 (解析域名->服务器ip地址)
    // 2. 客户端连接到Web服务器 (建立TCP链接 , TCP三次握手)
    // 3. 发送请求 (携带请求相关信息(请求报文: 一个请求报文由请求行、请求头部、空行和请求数据4部分组成))
    // 4. 服务器接受请求并返回HTTP响应 (返回响应报文: 状态行 响应头部 空格 响应正文)
    // 5. 客户端接收服务器响应数据,断开链接(释放TCP链接   => TCP四次挥手)
    // 6. 客户端浏览器解析HTML内容 => 将内容渲染到页面上

    //   域名               ip
    // www.baidu.com   xxx.xxx.xxx.xxx


</script>
</html>